package com.hw.paltfrom.controller.doncutor;
import com.hw.paltfrom.pack.ResponseResult;
import com.hw.paltfrom.pojo.HwBaseAnnexesfile;
import com.hw.paltfrom.rescode.HWSystemCode;
import com.hw.paltfrom.service.doncutor.StationCommandTaskServer;
import com.hw.paltfrom.utils.VerifyUtil;
import com.hw.paltfrom.vo.StandCommandTaskVo;
import com.hw.paltfrom.vo.StepInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * 站的指挥调度的
 * 崔孟超
 * 2019年11月7日11:16:161
 */
@RestController
@RequestMapping(value = "/StandCommandTask")
public class StationCommandTaskController {
    @Autowired
    private StationCommandTaskServer standCommandTaskServer;

    /**
     * 站的指挥调度查询
     * @param vo
     * @return
     */
    @RequestMapping(value = "/StandQuery")
    public Map<String, Object> standQuery(StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.query(vo);
    }



    /**
     * 站的指挥调度-异地复检
     * @param vo
     * @return
     */
    @RequestMapping(value = "/StandRemote")
    public Map<String, Object> standRemote(StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.standRemote(vo);
    }

    /**
     * 站的指挥调度-查扣
     * @param vo
     * @return
     */
    @RequestMapping(value = "/StandDetain")
    public Map<String, Object> standDetain(StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.standDetain(vo);
    }


    /**
            * Rushcard
     * 站的指挥调度-闯卡移交
     * @param vo
     * @return
             */
    @RequestMapping(value = "/RusCard")
    public Map<String, Object> rusCard(StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.rusCard(vo);
    }

    /**
     * Rushcard
     * 站的指挥调度-逃逸移交
     * @param vo
     * @return
     */
    @RequestMapping(value = "/transferOfEscape")
    public Map<String, Object> transferOfEscape(StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.transferOfEscape(vo);
    }

    /**
     * 站的指挥调度-情况说明
     * @param vo
     * @return
     */
    @RequestMapping(value = "/presentation")
    public Map<String, Object> presentation(StepInfoVO vo ) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.presentation(vo);
    }

    /**
     * 站的指挥调度-上报视频
     * @param vo
     * @return
     */

    @RequestMapping(value = "/reportedVideo")
    public Map<String, Object> reportedVideo(@RequestBody  StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.reportedVideo(vo);
    }
    /**
     * 上报移交单
     * Submitdelivery order
     * @param vo
     * @return
     */
    @RequestMapping(value = "/submitDelivery")
    public Map<String, Object> submitDelivery(StepInfoVO vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.submitDelivery(vo);
    }


    /**
 * 确认移交
 * Confirm the transfer
 * @param vo
 * @return
 */
@RequestMapping(value = "/confirmTheTransfer")
public Map<String, Object> confirmTheTransfer(StepInfoVO vo) {
    Boolean flag = VerifyUtil.verifyParams(vo);
    if (!flag) {
        return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
    }
    return standCommandTaskServer.confirmTheTransfer(vo);
    }

    /**
     * 详情
     * Confirm the transfer
     * @param vo
     * @return
     */
    @RequestMapping(value = "/particulars")
    public Map<String, Object> particulars(StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.detail(vo.getfId());
    }

    /**
     * 详情
     * Confirm the transfer
     * @param vo
     * @return
     */
    @RequestMapping(value = "/particular")
    public Map<String, Object> particular(StandCommandTaskVo vo) {
        Boolean flag = VerifyUtil.verifyParams(vo);
        if (!flag) {
            return ResponseResult.fail(HWSystemCode.PARAMS_ERROR);
        }
        return standCommandTaskServer.details(vo.getfId());
    }
}